package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 活动信息对象 activity
 * 
 * @author ruoyi
 * @date 2025-02-26
 */
public class Activity extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 活动ID */
    private Long activityId;

    /** 活动标题 */
    @Excel(name = "活动标题")
    private String title;

    /** 活动分类ID */
    @Excel(name = "活动分类ID")
    private Long categoryId;

    /** 活动描述 */
    @Excel(name = "活动描述")
    private String description;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 报名开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报名开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signupStartTime;

    /** 报名结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报名结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signupEndTime;

    /** 活动地点 */
    @Excel(name = "活动地点")
    private String location;

    /** 最大参与人数 */
    @Excel(name = "最大参与人数")
    private Long maxParticipants;

    /** 活动学分值 */
    @Excel(name = "活动学分值")
    private BigDecimal creditValue;

    /** 主办单位 */
    @Excel(name = "主办单位")
    private String organizer;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 发布教师ID */
    @Excel(name = "发布教师ID")
    private Long teacherId;

    /** 状态（0待审核 1已通过 2已拒绝 3已结束） */
    @Excel(name = "状态", readConverterExp = "0=待审核,1=已通过,2=已拒绝,3=已结束")
    private String status;

    public void setActivityId(Long activityId) 
    {
        this.activityId = activityId;
    }

    public Long getActivityId() 
    {
        return activityId;
    }
    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }
    public void setCategoryId(Long categoryId) 
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() 
    {
        return categoryId;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setSignupStartTime(Date signupStartTime) 
    {
        this.signupStartTime = signupStartTime;
    }

    public Date getSignupStartTime() 
    {
        return signupStartTime;
    }
    public void setSignupEndTime(Date signupEndTime) 
    {
        this.signupEndTime = signupEndTime;
    }

    public Date getSignupEndTime() 
    {
        return signupEndTime;
    }
    public void setLocation(String location) 
    {
        this.location = location;
    }

    public String getLocation() 
    {
        return location;
    }
    public void setMaxParticipants(Long maxParticipants) 
    {
        this.maxParticipants = maxParticipants;
    }

    public Long getMaxParticipants() 
    {
        return maxParticipants;
    }
    public void setCreditValue(BigDecimal creditValue) 
    {
        this.creditValue = creditValue;
    }

    public BigDecimal getCreditValue() 
    {
        return creditValue;
    }
    public void setOrganizer(String organizer) 
    {
        this.organizer = organizer;
    }

    public String getOrganizer() 
    {
        return organizer;
    }
    public void setContactPerson(String contactPerson) 
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() 
    {
        return contactPerson;
    }
    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }
    public void setTeacherId(Long teacherId) 
    {
        this.teacherId = teacherId;
    }

    public Long getTeacherId() 
    {
        return teacherId;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("activityId", getActivityId())
            .append("title", getTitle())
            .append("categoryId", getCategoryId())
            .append("description", getDescription())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("signupStartTime", getSignupStartTime())
            .append("signupEndTime", getSignupEndTime())
            .append("location", getLocation())
            .append("maxParticipants", getMaxParticipants())
            .append("creditValue", getCreditValue())
            .append("organizer", getOrganizer())
            .append("contactPerson", getContactPerson())
            .append("contactPhone", getContactPhone())
            .append("teacherId", getTeacherId())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
